subroutine print_event(nunit,eid,indent)
  use param
  use event_param
  use table_param,only:event_table
  implicit none
  integer,intent(in) :: nunit,eid,indent
  integer :: width,pos1,pos2
  character(len=len_linebuf) :: str
  
  width=92

  call log_msg1(nunit,"")
  call drawline(nunit,indent,width)
  select case(event_table(eid)%event_type)
  case(diff_event)
     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(2x,"sid",2x)')
     pos1=pos2

     pos2=pos1+6
     write(str(pos1+1:pos2),'(3x,"eid")')
     pos1=pos2

     pos2=pos1+30
     write(str(pos1+1:pos2),'(30x)')
     pos1=pos2

     pos2=pos1+2
     write(str(pos1+1:pos2),'(1x,"s")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"pid2")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"seid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0
     
     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<diff_event>")')
     pos1=pos2

     ! sid (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj1
     pos1=pos2

     ! sid2 (obj_seq1)
     pos2=pos1+6
     write(str(pos1+1:pos2),'(1x,i5)') &
          event_table(eid)%obj_seq1
     pos1=pos2

     ! obj2,obj_seq2,sqnc,rid
     pos2=pos1+30
     write(str(pos1+1:pos2),'(30x)')
     pos1=pos2

     ! is_spontaneous
     if (event_table(eid)%is_spontaneous) then
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"T")')
        pos1=pos2

        pos2=pos1+14
        write(str(pos1+1:pos2),'(14x)')
        pos1=pos2

        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%spont_table_index
        pos1=pos2
     else
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"F")')
        pos1=pos2

        ! pid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_index
        pos1=pos2

        ! pid2
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_seq
        pos1=pos2

        ! spontid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(7x)')
        pos1=pos2
     end if

  case(diss_event)
     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sid",4x)')
     pos1=pos2

     pos2=pos1+6
     write(str(pos1+1:pos2),'("eid2",2x)')
     pos1=pos2

     pos2=pos1+14
     write(str(pos1+1:pos2),'(14x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"sqnc")')
     pos1=pos2

     pos2=pos1+9
     write(str(pos1+1:pos2),'(9x)')
     pos1=pos2

     pos2=pos1+2
     write(str(pos1+1:pos2),'(1x,"s")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"pid2")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"seid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2

     ! event_type
     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<diss_event>")')
     pos1=pos2

     ! sid (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') event_table(eid)%obj1
     pos1=pos2

     ! sid2 (obj_seq1)
     pos2=pos1+6
     write(str(pos1+1:pos2),'(1x,i5)') &
          event_table(eid)%obj_seq1
     pos1=pos2

     ! obj2,obj_seq2
     pos2=pos1+14
     write(str(pos1+1:pos2),'(14x)')
     pos1=pos2

     ! diss type (sqnc)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%sqnc
     pos1=pos2

     ! rid
     pos2=pos1+9
     write(str(pos1+1:pos2),'(9x)')
     pos1=pos2

     ! is_spontaneous
     if (event_table(eid)%is_spontaneous) then
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"T")')
        pos1=pos2

        pos2=pos1+14
        write(str(pos1+1:pos2),'(14x)')
        pos1=pos2

        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%spont_table_index
        pos1=pos2
     else
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"F")')
        pos1=pos2

        ! pid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_index
        pos1=pos2

        ! pid2
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_seq
        pos1=pos2

        ! spont_id
        pos2=pos1+7
        write(str(pos1+1:pos2),'(7x)')
        pos1=pos2
     end if

  case(rctn_event)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sid1",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("eid1",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sid2",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("eid2",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sqnc",3x)')
     pos1=pos2

     pos2=pos1+9
     write(str(pos1+1:pos2),'("react_id",1x)')
     pos1=pos2

     pos2=pos1+2
     write(str(pos1+1:pos2),'(1x,"s")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"pid2")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"seid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2

     ! event_type
     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<rctn_event>")')
     pos1=pos2

     ! sid1 (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') event_table(eid)%obj1
     pos1=pos2

     ! sid2 (obj_seq1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj_seq1
     pos1=pos2

     ! sid2/label (obj2)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') event_table(eid)%obj2
     pos1=pos2

     ! obj_seq2
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj_seq2
     pos1=pos2

     ! react type (sqnc)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%sqnc
     pos1=pos2

     ! react_index
     pos2=pos1+9
     write(str(pos1+1:pos2),'(1x,i8)') &
          event_table(eid)%react_index
     pos1=pos2

     ! is_spontaneous
     if (event_table(eid)%is_spontaneous) then
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"T")')
        pos1=pos2

        pos2=pos1+14
        write(str(pos1+1:pos2),'(14x)')
        pos1=pos2

        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%spont_table_index
        pos1=pos2
     else
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"F")')
        pos1=pos2

        ! pid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_index
        pos1=pos2

        ! pid2
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_seq
        pos1=pos2

        ! spontid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(7x)')
        pos1=pos2
     end if
  case(extn_event)
     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("extn_id")')
     pos1=pos2

     pos2=pos1+39
     write(str(pos1+1:pos2),'(39x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2

     ! event_type
     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<extn_event>")')
     pos1=pos2

     ! index of external event (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj1
     pos1=pos2

     pos2=pos1+39
     write(str(pos1+1:pos2),'(39x)')
     pos1=pos2

     ! profile index
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%profile_table_index
     pos1=pos2

     pos2=pos1+14
     write(str(pos1+1:pos2),'(14x)')
     pos1=pos2

  case(sink_event)
     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sid",4x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("eid",4x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("gid",4x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("sqnc",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(7x)')
     pos1=pos2

     pos2=pos1+9
     write(str(pos1+1:pos2),'("sink_type")')
     pos1=pos2

     pos2=pos1+2
     write(str(pos1+1:pos2),'(1x,"s")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"pid2")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"seid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2

     ! event type
     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<sink_event>")')
     pos1=pos2

     ! sid (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') event_table(eid)%obj1
     pos1=pos2

     ! eid (obj_seq1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj_seq1
     pos1=pos2

     ! gid (obj2)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj2
     pos1=pos2

     ! sqnc (obj_seq2)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(1x,i6)') &
          event_table(eid)%obj_seq2
     pos1=pos2

     ! sqnc
     pos2=pos1+7
     write(str(pos1+1:pos2),'(7x)')
     pos1=pos2

     ! sink_type
     pos2=pos1+9
     write(str(pos1+1:pos2),'(1x,i8)') &
          event_table(eid)%react_index
     pos1=pos2

     ! is_spontaneous
     if (event_table(eid)%is_spontaneous) then
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"T")')
        pos1=pos2

        pos2=pos1+14
        write(str(pos1+1:pos2),'(14x)')
        pos1=pos2

        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%spont_table_index
        pos1=pos2
     else
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"F")')
        pos1=pos2

        ! pid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_index
        pos1=pos2

        ! pid2
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_seq
        pos1=pos2

        ! spontid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(7x)')
        pos1=pos2
     end if
  case(srce_event)
     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'("eid",8x)')
     pos1=pos2

     pos2=pos1+13
     write(str(pos1+1:pos2),'("event_type",3x)')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'("gid",4x)')
     pos1=pos2

     pos2=pos1+6
     write(str(pos1+1:pos2),'("dissid")')
     pos1=pos2

     pos2=pos1+30
     write(str(pos1+1:pos2),'(30x)')
     pos1=pos2

     pos2=pos1+2
     write(str(pos1+1:pos2),'(1x,"s")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(4x,"pid")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"pid2")')
     pos1=pos2

     pos2=pos1+7
     write(str(pos1+1:pos2),'(3x,"seid")')
     pos1=pos2

     call log_msg1_indent(nunit,indent,str(1:pos2))
     call drawline(nunit,indent,width)

     pos1=0

     pos2=pos1+11
     write(str(pos1+1:pos2),'(i11.11)') eid
     pos1=pos2
     
     ! event_type
     pos2=pos1+13
     write(str(pos1+1:pos2),'(1x,"<srce_event>")') 
     pos1=pos2

     ! geom_obj_id (obj1)
     pos2=pos1+7
     write(str(pos1+1:pos2),'(i6,1x)') &
          event_table(eid)%obj1
     pos1=pos2

     ! diss_type (obj_seq1)
     pos2=pos1+6
     write(str(pos1+1:pos2),'(i6)') &
          event_table(eid)%obj_seq1
     pos1=pos2

     pos2=pos1+30
     write(str(pos1+1:pos2),'(30x)')
     pos1=pos2

     ! is_spontaneous
     if (event_table(eid)%is_spontaneous) then
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"T")')
        pos1=pos2

        pos2=pos1+14
        write(str(pos1+1:pos2),'(14x)')
        pos1=pos2

        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%spont_table_index
        pos1=pos2
     else
        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,"F")')
        pos1=pos2

        ! pid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_index
        pos1=pos2

        ! pid2
        pos2=pos1+7
        write(str(pos1+1:pos2),'(1x,i6)') &
             event_table(eid)%profile_table_seq
        pos1=pos2

        ! spontid
        pos2=pos1+7
        write(str(pos1+1:pos2),'(7x)')
        pos1=pos2
     end if
  end select

  call log_msg1_indent(nunit,indent,str(1:pos2))
  call drawline(nunit,indent,width)

  return

end subroutine print_event
